﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Data;
using Utility;

namespace DataAccess
{
    public class SinhVienControl
    {
        // tạo đối tượng của lớp LinqUtility , đối tương này sẽ xử lý trên bảng SinhVien
        LinqUtility<SinhVien> context = new LinqUtility<SinhVien>();

        // Tạo đối tượng database của linq
        QuanLyPhongHocDataContext db = new QuanLyPhongHocDataContext();

        // Lấy danh sách toàn bộ Sinh Vien
        public List<SinhVien> GetListSinhvien()
        {
            return context.GetAll();
        }

        // Lấy mã sinh viên lớn nhất
        private string GetMaxId()
        {
            var query = (from q in db.SinhViens
                         select q.MaSV).Max();
            return query.ToString();
        }

        // tạo MaSV tự động
        public string GenerateMaSV()
        {
            string newId = "";
            if (this.GetListSinhvien().Count == 0)
            {
                newId = "SV000001";
            }
            else
            {
                string id = this.GetMaxId();
                int magv = Convert.ToInt32(id.Remove(0, 2)) + 1;
                newId = "SV" + magv.ToString("00000#");
            }
            return newId;
        }

        // insert
        public void InsertSinhVien(SinhVien sv)
        {
            context.Insert(sv);
        }

        // Lấy 1 sinh viên theo MaSV
        public SinhVien GetSinhVienByMaSV(string masv)
        {
            var sv = (from s in db.SinhViens
                     where s.MaSV.Equals(masv)
                     select s).Single();
            return sv;
        }

        // update
        public void UpdateSinhVien(SinhVien sv)
        {
            context.Update(sv);
        }

    }
}